package com.sky.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * @Description TODO
 * @Author itheima
 * @Date 2023-04-16 15:14
 */

@Configuration
@Slf4j
public class RedisConfiguration {

    //由于项目优先运行我们的配置类并将当前对象加入IOC容器，导致spring-data-redis自动配置里面的这个对象
    //就不用加入spring容器，最终达到优先使用我们创建的RedisTemplate对象
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //这里不使用默认的JDK序列化器，使用字符串序列化器，解决key可读性差的问题。
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}
